Rhapsody Developer Release Copyright 1997 by Apple
Computer, Inc. All Rights Reserved.
Rhapsody Developer Release Notes:
SCSI Driver
The SCSI Driver is a software module that directly drives the SCSI
Hardware Bus Adapter. Rhapsody provides two SCSI drivers, one for the
internal bus driver controlled by a MESH chip, and another for the
external bus, controlled by the Curio chip. The MESH chip is an Apple
design, also used for CHRP systems, while the Curio chip is based on
the industry standard NCR 53C96 design. Both drivers provide a common
interface to operating system software, such as disk drivers.
Notes Specific to Developer Release
New Features and Caveats
The SCSI drivers permit hard-disk booting in place of network
booting on PowerSurge class machines. The drivers are of alpha
quality; some features planned for subsequent releases have been
disabled (see below) to minimize the risk of bugs that cause crashes
or data corruption arising from timing dependencies.
Disabled Features
The following features have been disabled or have not been
implemented for the Developer Release. While the lack of these
features might affect performance, it do not impede development or
use of the software.
- The disconnect and reselect options are disabled. As a result,
once an I/O request has begun, it continues to completion without
releasing the SCSI bus.
- Tagged queuing is disabled. Tagged queuing permits a disk
drive to operate on several I/O requests simultaneously. This
feature can improve performance for virtual-memory paging. Because
tagged queuing requires the disconnect and reselect options (which
are disabled), it has been disabled.
- Synchronous data transfer is disabled. This feature is
supported on the internal (MESH) SCSI bus, but the Curio chip does
not support synchronous data transfer. Synchronous transfers can
significantly improve transfer throughput of SCSI bus data.
- The initiator bus ID is hardwired to ID 7. This is only
sigificant for systems where two Rhapsody computers share a common
SCSI bus.
- The alpha-release drivers are coded for reliability and
functionality. A number of coding improvements have been deferred
to a subsequent release. These improvements include inline
compilation of critical-path modules and improvements to
inter-task queuing.